'\" t
.\" Copyright (c) Bruno Haible <haible@clisp.cons.org>
.\"
.\" SPDX-License-Identifier: GPL-2.0-or-later
.\"
.\" References consulted:
.\"   GNU glibc-2 source code and manual
.\"   Dinkumware C library reference http://www.dinkumware.com/
.\"   OpenGroup's Single UNIX specification
.\"     http://www.UNIX-systems.org/online.html
.\"   ISO/IEC 9899:1999
.\"
.\" Modified Tue Oct 16 23:18:40 BST 2001 by John Levon <moz@compsoc.man.ac.uk>
.TH fgetws 3 2024-06-15 "Linux man-pages 6.9.1"
.SH NAME
fgetws \- read a wide-character string from a FILE stream
.SH LIBRARY
Standard C library
.RI ( libc ", " \-lc )
.SH SYNOPSIS
.nf
.B #include <wchar.h>
.P
.BI "wchar_t *fgetws(wchar_t " ws "[restrict ." n "], int " n \
", FILE *restrict " stream );
.fi
.SH DESCRIPTION
The
.BR fgetws ()
function is the wide-character equivalent
of the
.BR fgets (3)
function.
It reads a string of at most \fIn\-1\fP wide characters into the
wide-character array pointed to by \fIws\fP,
and adds a terminating null wide character (L\[aq]\[rs]0\[aq]).
It stops reading wide characters after it has encountered and
stored a newline wide character.
It also stops when end of stream is reached.
.P
The programmer must ensure that there is room for at least \fIn\fP wide
characters at \fIws\fP.
.P
For a nonlocking counterpart, see
.BR unlocked_stdio (3).
.SH RETURN VALUE
The
.BR fgetws ()
function, if successful, returns \fIws\fP.
If end of stream
was already reached or if an error occurred, it returns NULL.
.SH ATTRIBUTES
For an explanation of the terms used in this section, see
.BR attributes (7).
.TS
allbox;
lbx lb lb
l l l.
Interface	Attribute	Value
T{
.na
.nh
.BR fgetws ()
T}	Thread safety	MT-Safe
.TE
.SH STANDARDS
C11, POSIX.1-2008.
.SH HISTORY
POSIX.1-2001, C99.
.SH NOTES
The behavior of
.BR fgetws ()
depends on the
.B LC_CTYPE
category of the
current locale.
.P
In the absence of additional information passed to the
.BR fopen (3)
call, it is
reasonable to expect that
.BR fgetws ()
will actually read a multibyte string
from the stream and then convert it to a wide-character string.
.P
This function is unreliable,
because it does not permit to deal properly with
null wide characters that may be present in the input.
.SH SEE ALSO
.BR fgetwc (3),
.BR unlocked_stdio (3)
